package com.yidu.t299.service.zzy.impl;

import com.yidu.t299.dao.zzy.SyllabusMapper;
import com.yidu.t299.domain.zzy.ClassRoom;
import com.yidu.t299.domain.zzy.Lesson;
import com.yidu.t299.domain.zzy.Record;
import com.yidu.t299.domain.zzy.Syllabus;
import com.yidu.t299.service.zzy.SyllaBusBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Author:周子怡
 * @Date:2023/03/16/13:40
 * @Description:
 */
@Service
@Transactional
public class SyllaBusBizImpl implements SyllaBusBiz {
    @Autowired
    private SyllabusMapper syllabusMapper;


    /**
     * 按主键查询
     *
     * @param syllabusId 主键
     * @return 成绩对象
     */
    @Override
    public Syllabus selectByPrimaryKey(Integer syllabusId) {
        return syllabusMapper.selectByPrimaryKey(syllabusId);
    }

    /**
     * 按条件分页查询创建数据集合
     *
     * @param rows      每页的行数
     * @param page      页码
     * @param condition 条件参数
     * @return 成绩对象集合
     */
    @Override
    public List<Syllabus> selectByPage(int rows, int page, String condition) {
        return syllabusMapper.selectByPage(rows,page,condition);
    }

    /**
     * 按条件查询grade表中数据行数
     *
     * @param condition 条件参数
     * @return 数据行数
     */
    @Override
    public int selectCount(String condition) {
        return syllabusMapper.selectCount(condition);
    }

    /**
     * 根据实体对象生成条件字符串
     *
     * @param syllabus 成绩对象
     * @return 条件字符串
     */
    @Override
    public String getCondition(Syllabus syllabus) {
        // 定义条件字符串变量，初始值为空格字符串
        String condition = " ";
        // 如果成绩对象为空，则直接返回空条件字符串
        if (syllabus == null) {
            return condition;
        }
        //条件筛选：这里注意要加别名，因为根据条件字符串查询行数的sql语句用的是多表联查!!!
        if(syllabus.getClassName()!=null && syllabus.getClassName().trim().length()!=0){
            condition = " and c.class_name like '%"+syllabus.getClassName()+"%'";
        }
        if(syllabus.getClassRoomName()!=null && syllabus.getClassRoomName().trim().length()!=0){
            condition = " and r.class_name like '%"+syllabus.getClassRoomName()+"%'";
        }
        // 返回条件字符串
        return condition;
    }

    /**
     * 针对学员表(student_manage)进行操作
     * 根据学员名称查找其编号
     *
     * @param classRoomName 学员名称
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public int selectByClassRoomName(String classRoomName) {
        return syllabusMapper.selectByClassRoomName(classRoomName);
    }

    @Override
    public int selectByRecordName(String lessonName) {
        return syllabusMapper.selectByRecordName(lessonName);
    }

    /**
     * 针对校区表(school)进行操作
     * 根据校区名称查找其编号
     *
     * @param className 校区名称
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public int selectByClassName(String className) {
        return syllabusMapper.selectByClassName(className);
    }


    /**
     * 针对校区表(school)进行操作
     * 根据校区名称查找其编号
     *
     * @param schoolName 校区名称
     * @return 影响的行数(> 1 : 成功)
     */

    /**
     * 针对课程表(lesson)进行操作
     * 根据课程名称查找其编号
     *
     * @param lessonName 课程名称
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public int selectByLessonName(String lessonName) {
        return syllabusMapper.selectByLessonName(lessonName);
    }

    /**
     * 得到所有校区信息
     *
     * @return 校区对象集合
     */
    @Override
    public List<ClassRoom> selectAllGetClassRoom() {
        return syllabusMapper.selectAllGetClassRoom();
    }

    /**
     * 得到所有课程信息
     *
     * @return 课程对象集合
     */
    @Override
    public List<Record> selectAllGetRecord() {
        return syllabusMapper.selectAllGetRecord();
    }

    /**
     * 得到所有校区信息
     *
     * @return 校区对象集合
     */
    @Override
    public List<Class> selectAllGetClass() {
        return syllabusMapper.selectAllGetClass();
    }

    /**
     * 得到所有课程信息
     *
     * @return 课程对象集合
     */
    @Override
    public List<Lesson> selectAllGetLesson() {
        return syllabusMapper.selectAllGetLesson();
    }
}